package com.hongxin.nw.netty.values;

/**
 * @remark 文档各 字段/标识 的枚举类
 * @author: GuoXiaolin
 * @date 2019/5/16 11:27
 * @Version 1.0
 * @Descibe
 */
public enum TypeIdentif {
    //启动符
    IDENTIFY_START(68),

    //类型标识号
    //监测方向
    IDENTIFY_M_SP_NA_1(1),
    IDENTIFY_M_ME_NB_1(11),
    IDENTIFY_M_IT_NA_1(15),
    IDENTIFY_M_RE_NA_1(130),
    IDENTIFY_M_MD_NA_1(132),
    IDENTIFY_M_JC_NA_1(134),
    //控制方向
    IDENTIFY_C_IC_NA_1(100),
    IDENTIFY_C_CI_NA_1(101),
    IDENTIFY_C_CS_NA_1(103),
    IDENTIFY_C_SD_NA_1(133),

    //各字段byte长度,,1个字节=一个八位位组([00000000]),系统要求一个字节转hex为2位
    BYTE_LENGTH_DOMAIN(2),  //apci长度域 字节长度2
    BYTE_CONTROL_DOMAIN(4),  //apci控制域 字节长度2
    BYTE_APCI_LENGTH(7),  //apci的长度 7Byte
    BYTE_ZERO(0),  //字节长度0
    BYTE_START(1),  //起始标识	1Byte	BIN码	固定68H
    BYTE_FRAME_LENGTH(2),  //帧长度	2Byte	BIN码
    BYTE_START_AGREEMENT(1),  //协议启动标识帧	1Byte	BIN码	固定位“FF”
    BYTE_AGREEMENT_VERSION(1),  //协议版本	1Byte	压缩BCD码	保留为02
    BYTE_CODE(8),  //设备编号	8Byte	压缩BCD码	充电设备编号
    BYTE_CHARGE_INTER_NUM(1),  //充电接口数量	1Byte	压缩BCD码
    BYTE_CHARGE_MODEL(1),  //充电模式	1Byte	BIN码	充电设备支持的充电模式，位表示，1表示支持，0 表示不支持，D0：按电量；D1：按时间；D2：自动；D3： 按金额；D4~D7保留
    BYTE_TYPE(1),  //类型标志 字节长度1
    BYTE_VSQ(1),  // 可变结构限定词 字节长度1
    BYTE_COT(2),  // 传送原因 字节长度2
    BYTE_STAT_ADDRESS(2),  // 站地址 字节长度1
    BYTE_INFO_ADDRESS(3),  // 信息对象地址 字节长度1
    BYTE_QCC(1),   //  计数量召唤限定词 字节长度1
    BYTE_QOI(1),   //  召唤命令限定词 字节长度1
    BYTE_TIME(7),  // 7个八位位组时间格式 字节长度7
    BYTE_QDS(1),  // 品质描述符 字节长度1
    BYTE_MS(2),  // 毫秒 字节长度2
    BYTE_MIN(1),  // 分钟 字节长度1
    BYTE_HOURS(1),  // 小时 字节长度1
    BYTE_DAY(1),   //  日 字节长度1
    BYTE_MOUTH(1),   //  月 字节长度1
    BYTE_YEAR(1),  // 年 字节长度1
    BYTE_LOG_TYPE(1), //下发记录类型 字节长度1
    BYTE_CO(8),//充电设备编号  字节长度8
    BYTE_START_MODEL(1),////启动方式: 1Byte	 刷卡启动：0 , 远程/APP启动：1, VIN启动：2
    BYTE_IP(1),//ip  字节长度4
    BYTE_PORT(2),//端口  字节长度2
    BYTE_USER_ID(8),//用户身份ID	压缩BCD码	  8Byte	本地充电时，此字段全部填充为FF
    BYTE_START_TYPE(1),//用户身份ID	压缩BCD码	  8Byte	本地充电时，此字段全部填充为FF
    BYTE_USERNAME(10),//用户名  字节长度10
    BYTE_PASSWORD(10),//密码  字节长度10
    BYTE_PATH(50),//路径  字节长度50
    BYTE_FILENAME(50),//文件名  字节长度50
    BYTE_FACTORY_CODE(10),//厂家编码  字节长度10
    BYTE_HARD_VERSION(30),//硬件版本号  字节长度30
    BYTE_SOFTWARE_VERSION(20),//软件版本号  字节长度20
    BYTE_CHARGE_TYPE(1),//充电方式  字节长度1
    BYTE_CHARGE_PARAM(3),//待充电参数（电量/时间，3字节BCD码）；
    BYTE_UPGRADE(186),//	远程升级	BCD码	186 Byte
    BYTE_CHARGE_PARAM_PRE(2),//充电参数整数部分 字节长度2
    BYTE_CHARGE_PARAM_SUFFIX(1),//充电参数小数部分 字节长度1
    BYTE_USER_MONEY_PRE(3),//余额整数部分 字节长度3
    BYTE_USER_MONEY_SUFFIX(1),//余额小数部分 字节长度1
    BYTE_CHARGE_INTERFACE_IDENTIFY(1),//充电接口标识	BIN码	1Byte	充电设备为一桩多充时用来标记接口号，一桩一充时此项为0。多个接口时顺序对每个接口进行编号
    BYTE_MONITOR_INTERVAL(2),//实时监测数据上报时间间隔 字节长度2  时间单位：分 (0表示不上传)
    BYTE_CHANGE_INTERVAL(2),//变化数据上传最小时间间隔 字节长度2  时间单位：秒 （0表示不上传）
    BYTE_CARD(8),//压缩BCD码	8Byte	16位编码
    BYTE_SUCCESS_IDENTIFY(1),//成功标志	BIN码	1Byte
    BYTE_AUTH_FAIL_IDENTIFY(2),//8	鉴权失败原因	压缩BCD码	2Byte
    BYTE_MAIN_RANDOM(8),//主站随机数	压缩BCD码	8Btye	随机数
    BYTE_KW_Param(2),//3	功率控制参数	BCD码	2Byte	格式：NNN.NNNN.N：单位为%，限定输出功率为额定输出功率的百分比。
    BYTE_STOP_TIME(7),//4	限定截止时间	BIN码	7Byte	CP56Time2a格式:限定截止时间，超出此时间充电设备自动取消限制。
    BYTE_FAIL_IDENTIFY(2),//扣款失败原因	压缩BCD码	  2Byte
    BYTE_EQUIPMENT_TYPE(1),//设备类型  	BIN码	1Byte
    BYTE_RECORD(1),//记录类型   bin码  1Byte
    BYTE_VALUE(2),//value bin  2byte
    BYTE_INFO_LENGTH(1),//信息对象的长度域  1byte
    BYTE_BCR(4),////BCR二进制读数  ,,4BYTE
    BYTE_TRAN_NUM(16), //交易流水号	压缩BCD码	16Byte	32位交易代码
    BYTE_PAY_NUM(8), //支付卡号	压缩BCD码	8Byte	支付卡唯一标识号
    BYTE_CARD_MONEY(4),//卡余额	BIN码	4Byte	全部置0
    BYTE_CARD_STATUS(2),//	卡状态	BIN码	2Byte	全部置0
    BYTE_PHYSICS_NUM(8), //物理卡号	压缩BCD码	8Byte	16位编码，用于在运营管理系统中的唯一标识，远程充电时，此字段全部填充为FF
    BYTE_REPORT_STATUS(1),//状态	压缩BCD码	1Byte	1-挂失 2-解挂
    BYTE_CARD_PASS(16),//卡密码	字符	16Byte	16位字符串，与输入密码相同（可选）
    BYTE_ENTER_PASS(16),//输入密码	字符	16Byte	16位字符串，与输入密码相同（可选）
    BYTE_TIME_BILLING_IDENTIFY(1), //分时计费标志	压缩BCD码	1Byte	0：分时    1：不分时
    BYTE_START_TIME(7), //开始时间	BIN码	7Byte	CP56Time2a格式
    BYTE_END_TIME(7), //结束时间	BIN码	7Byte	CP56Time2a格式，充电未结束为FFFFFFFFFFFF
    BYTE_J_START_VAL(4), //尖起示值	BIN码	4Byte	精确到小数点后两位
    BYTE_J_END_VAL(4), //尖止示值	BIN码	4Byte	精确到小数点后两位
    BYTE_F_START_VAL(4), //峰起示值	BIN码	4Byte	精确到小数点后两位
    BYTE_F_END_VAL(4), //峰止示值	BIN码	4Byte	精确到小数点后两位
    BYTE_P_START_VAL(4), //平起示值	BIN码	4Byte	精确到小数点后两位
    BYTE_P_END_VAL(4), //平止示值	BIN码	4Byte	精确到小数点后两位
    BYTE_G_START_VAL(4), //谷起示值	BIN码	4Byte	精确到小数点后两位
    BYTE_G_END_VAL(4), //谷止示值	BIN码	4Byte	精确到小数点后两位
    BYTE_METER_TYPE(2), //计量类型	压缩BCD码	2Byte	0001-充电量 0002-放电量
    BYTE_Z_START_VAL(4), //总起示值	BIN码	4Byte	精确到小数点后二位
    BYTE_Z_END_VAL(4), //总止示值	BIN码	4Byte	精确到小数点后二位
    BYTE_J_PRICE(4), //尖单价	BIN码	4Byte	精确到小数点后五位
    BYTE_J_EQ(4), //尖电量	BIN码	4Byte	精确到小数点后两位
    BYTE_J_MONEY(4), //尖金额	BIN码	4Byte	精确到小数点后两位
    BYTE_F_PRICE(4), //峰单价	BIN码	4Byte	精确到小数点后五位
    BYTE_F_EQ(4), //峰电量	BIN码	4Byte	精确到小数点后两位
    BYTE_F_MONEY(4), //峰金额	BIN码	4Byte	精确到小数点后两位
    BYTE_P_PRICE(4), //平单价	BIN码	4Byte	精确到小数点后五位
    BYTE_P_EQ(4), //平电量	BIN码	4Byte	精确到小数点后两位
    BYTE_P_MONEY(4), //平金额	BIN码	4Byte	精确到小数点后两位
    BYTE_G_PRICE(4), //谷单价	BIN码	4Byte	精确到小数点后五位
    BYTE_G_EQ(4), //谷电量	BIN码	4Byte	精确到小数点后两位
    BYTE_G_MONEY(4), //谷金额	BIN码	4Byte	精确到小数点后两位
    BYTE_Z_EQ(4), //总电量	BIN码	4Byte	精确到小数点后两位
    BYTE_BUSY_TYPE(2), //业务类型	压缩BCD码	 2Byte	0001-充电，0002-放电
    BYTE_BALANCE_AFTER_DEDUCTION(4), //扣款后钱包余额	BIN码	4Byte	本次消费完之后电子钱包余额。
    BYTE_CONSUMPTION_PRICE(4), //消费单价	BIN码	4Byte
    BYTE_CONSUMPTION_MONEY(4), //消费金额	BIN码	4Byte	精确到小数点后两位
    BYTE_CAR_IDENTIFY(17),//    电动汽车唯一标识	字符	17BYTE
    BYTE_CAR_IDENTIFY_32(32),//    电动汽车唯一标识	字符	32BYTE
    BYTE_TRAN_IDENTIFY(1), //交易标识	BIN	 1Byte	0：充电卡成功；1：充电卡失败
    BYTE_CLIENT_CODE(6), //客户端卡终端机编号	BIN	6Byte
    BYTE_BALANCE_BEFORE_DEDUCTION(4), //扣款前钱包余额	BIN	4Byte
    BYTE_WALLET_TRAN_NUM(2), //钱包交易序号	BIN	2Byte
    BYTE_TRAN_MONEY(4), //交易金额	BIN	4Byte
    BYTE_TRAN_TIME(7), //交易日期、时间	BIN	7Byte	CP56Time2a格式
    BYTE_CAMOUFLAGE_RANDOM(4), //伪随机数	BIN	4Byte
    BYTE_TRAN_TYPE_IDENTIFY(1), //交易类型标识	BIN	1Byte
    BYTE_TAC(4), //TAC	BIN	4Byte
    BYTE_KEY_VERSION(1), //密钥版本	BIN	1Byte
    BYTE_CLIENT_TRAN_NUM(4), //终端交易序号	BIN	4Byte
    BYTE_SERVER_PRICE(4), //充电服务费单价	BIN码	4Byte	精确到小数点后五位
    BYTE_SERVER_MONEY(4), //充电服务费金额	BIN码	4Byte	精确到小数点后两位
    BYTE_SUBSCRIPTION_PRICE(4), //预约费单价	BIN码	4Byte	精确到小数点后五位
    BYTE_SUBSCRIPTION_MONEY(4), //预约费金额	BIN码	4Byte	精确到小数点后两位
    BYTE_OCCUPANCY_PRICE(4), //占位费单价	BIN码	4Byte	精确到小数点后五位
    BYTE_OCCUPANCY_MONEY(4), //占位费金额	BIN码	4Byte	精确到小数点后两位
    BYTE_CHARGE_Z_EF(4), //充电总电费	BIN码	4Byte	精确到小数点后两位
    BYTE_BILLING_MODEL_ID(8), //计费模型ID	BIN码	8Byte
    BYTE_START_SOC(1), //计费模型ID	BIN码	8Byte
    BYTE_END_SOC(1), //计费模型ID	BIN码	8Byte
    BYTE_TIME_NUM(9), //时间戳序号	9Byte 省编号+YYYYMMDDhhmmss+序号，例如：312013051412010159 对新安装的充电设备，此字段设置为FFFFFFFFFFFFFFFFFF
    BYTE_CHARGE_Z_FEE(4), //充电总费用	BIN码	4Byte
    BYTE_CHARGE_END_REASON(2), //充电结束原因	BIN码	2Byte
    BYTE_CHARGE_START_TYPE(1),//    充电启动方式	BIN码	1BTYE	0：远程启动； 1刷卡启动
    BYTE_EXECUTE_RES(1),//    执行结果	BIN码	1BTYE	0：确认 1：成功；2：失败
    BYTE_EXCEPTION_REASON(1),//异常原因 BIN码 1BTYE 0:设备未连接；1：设备连接故障 2：通信故障 3：SM4密钥错误 4：其他
    BYTE_HIGHEST_VOLTAGE(2),//    最高允许充电总电压	BIN码	2BYTE	单位:V 精确到小数点后一位
    BYTE_HIGHEST_ELECTRIC(2),//    最高允许充电总电流	BIN码	2BYTE	单位:A 精确到小数点后一位
    BYTE_TOTAL_ENERGY(2),//    电池标称总能量	BIN码	2BYTE	单位:KW.H 精确到小数点后一位
    BYTE_HIGHEST_TEMPERATURE(1),//    最高充电温度	BIN码	1BYTE	单位:℃
    BYTE_MONOMER_HIGHEST_VOLTAGE(2),//    单体电池允许最高充电电压	BIN码	2BYTE	单位:V 精确到小数点后两位
    BYTE_VOLTAGE(2),//    当前电池整车电压	BIN码	2Byte	单位:V 精确到小数点后一位
    BYTE_J_EF(4), //    尖电费	BIN码	4BYTE	精确到小数点后两位
    BYTE_F_EF(4), //    峰电费	BIN码	4BYTE	精确到小数点后两位
    BYTE_P_EF(4), //    平电费	BIN码	4BYTE	精确到小数点后两位
    BYTE_G_EF(4),//    谷电费	BIN码	4BYTE	精确到小数点后两位
    BYTE_Z_EF(4),//    当前总电费	BIN码	4BYTE	精确到小数点后两位
    BYTE_S_Z_EF(4),//    服务费总费用	BIN码	4BYTE	精确到小数点后两位
    BYTE_Z_W_EF(4),//    占位费总费用	BIN码	4BYTE	精确到小数点后两位
    BYTE_METER_I_TYPE(2),//    计量示数类型	压缩BCD码	2BYTE	0002-充电量 0003-放电量
    BYTE_CUMULATIVE_CHARGE_TIME(2),//    累计充电时间	BIN码	2BYTE	单位：分钟
    BYTE_SURPLUS_TIME(2),//    预计剩余充电时间	BIN码	2BYTE	单位：分钟
    BYTE_CHARGE_FEE(4),//    充电总费用	BIN码	4Byte	精确到小数点后两位
    BYTE_EXECUTE_STATUS(2),////执行状态  压缩BCD码 	2BYTE
    BYTE_TIME_NUMB(1),//时段数量 1byte
    BYTE_MONEY(4),//    扣款金额	BIN码	4BYTE	精确到小数点后两位
    BYTE_ACCOUNT_MONEY(4),//    帐户余额	BIN码	4BYTE	精确到小数点后两位
    BYTE_FAIL_REASON(2),//    扣款失败原因	压缩BCD码	  2BYTE	0000-成功 0001-账户余额不足 0002-套餐余额不足 0003-交易相同 0004-挂失卡 0005-车卡不匹配
    BYTE_DEDUCTION_MILEAGE(4),//    扣除里程	BIN码	4BYTE	精确到小数点后两位
    BYTE_SURPLUS_MILEAGE(4),//    剩余里程	BIN码	4BYTE	精确到小数点后两位
    BYTE_DEDUCTION_EQ(4),//    扣除电量	BIN码	4BYTE	精确到小数点后两位
    BYTE_SURPLUS_EQ(4),//    剩余电量	BIN码	4BYTE	精确到小数点后两位
    BYTE_DEDUCTION_TIMES(4),//    扣除次数	BIN码	4BYTE	精确到小数点后两位
    BYTE_SURPLUS_TIMES(4),//    剩余次数	BIN码	4Byte	精确到小数点后两位
    BYTE_K_C_D_L(4),//    	可充电量	BIN码	4Byte	精确到小数点后两位
    // //表A.1.1 交流充电桩充电过程实时监测数据
    BYTE_JC_A1(8),//1	充电设备编号	132：M_MD_NA_1	压缩BCD码	8BYTE	充电设备编号
    BYTE_JC_A2(1),//2	充电接口标识	1：M_SP_NA_1	BIN码	1BYTE	充电设备为一桩多充时用来标记接口号，一桩一充时此项为0。多个接口时顺序对每个接口进行编号
    BYTE_JC_A3(1),//3	连接确认开关状态	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传(),0关，1开
    BYTE_JC_A4(2),//4	工作状态	11：M_ME_NB_1	压缩BCD码	2BYTE	0001-告警0002-待机0003-工作 0004-离线 0005-完成
    BYTE_JC_A5(1),//5	交流输入过压告警	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传；0不过压，1过压
    BYTE_JC_A6(1),//6	交流输入欠压告警	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传；0不欠压，1欠压
    BYTE_JC_A7(1),//7	充电电流过负荷告警	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传；0不过负荷，1过负荷
    BYTE_JC_A8(2),//8	充电输出电压	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后一位
    BYTE_JC_A9(2),//9	充电输出电流	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后二位
    BYTE_JC_A10(1),//10	输出继电器状态	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传(),0关，1开
    BYTE_JC_A11(4),//11	有功总电度	132：M_MD_NA_1	BIN码	4BYTE	精确到小数点后一位
    BYTE_JC_A12(2),//12	（当前）A相电压	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后一位
    BYTE_JC_A13(2),//13	（当前）B相电压	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后一位
    BYTE_JC_A14(2),//14	（当前）C相电压	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后一位
    BYTE_JC_A15(2),//15	（当前）A相电流	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后二位
    BYTE_JC_A16(2),//16	（当前）B相电流	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后二位
    BYTE_JC_A17(2),//17	（当前）C相电流	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后二位
    BYTE_JC_A18(1),//18	温度过高保护	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传，1过高
    BYTE_JC_A19(1),//19	短路保护	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传，1发生
    BYTE_JC_A20(1),//20	漏电保护	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传，1发生
    BYTE_JC_A21(1),//21	急停开关触发	1：M_SP_NA_1	BIN码	1Byte	布尔型, 变化上传，1触发
    //表A.1.2非车载直流充电机（整车）充电过程实时监测数据
    BYTE_JC_B1(8),//1	    充电机编号	132：M_MD_NA_1	压缩BCD码	8BYTE	充电机编号
    BYTE_JC_B14(4),//14	直流有功总电度	132：M_MD_NA_1	BIN码	4BYTE	精确到小数点后一位
    BYTE_JC_B15(4),//15	交流有功总电度	132：M_MD_NA_1	BIN码	4BYTE	精确到小数点后一位
    BYTE_JC_B2(1),//2	    充电接口标识	1：M_SP_NA_1	BIN码	1BYTE	充电设备为一桩多充时用来标记接口号，一桩一充时此项为0。多个接口时顺序对每个接口进行编号
    BYTE_JC_B19(1),//19	充电机连接器故障	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传，1故障
    BYTE_JC_B20(1),//20	BMS终止	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传，1终止
    BYTE_JC_B21(1),//21	充电机内部温度故障	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传，1故障
    BYTE_JC_B22(1),//22	温度过高保护	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传，1过高
    BYTE_JC_B23(1),//23	短路保护	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传，1发生
    BYTE_JC_B24(1),//24	漏电保护	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传，1发生
    BYTE_JC_B25(1),//25	急停开关触发	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传，1触发
    BYTE_JC_B9(1),//9	    BMS通信异常	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传；0正常，1异常
    BYTE_JC_B10(1),//10	直流母线输出过压告警	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传；0：不过压，1过压
    BYTE_JC_B11(1),//11	直流母线输出欠压告警	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传；0：不欠压，1欠压
    BYTE_JC_B12(1),//12	蓄电池充电过流告警	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传；0：不过流，1过流
    BYTE_JC_B13(1),//13	蓄电池模块采样点过温告警	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传；0：不过温，1过温
    BYTE_JC_B27(1),//27	充电机输入过压告警	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传，1触发
    BYTE_JC_B28(1),//28	充电机输入欠压告警	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传，1触发
    BYTE_JC_B16(1),//16	是否连接电池	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传
    BYTE_JC_B3(2),//3	    充电机输出电压	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后一位
    BYTE_JC_B4(2),//4	    充电机输出电流	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后二位
    BYTE_JC_B5(2),//5	    SOC	11：M_ME_NB_1	BIN码	2BYTE	整型
    BYTE_JC_B6(2),//6	    电池组最低温度	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后一位
    BYTE_JC_B7(2),//7	    电池组最高温度	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后一位
    BYTE_JC_B8(2),//8	    充电机状态	11：M_ME_NB_1	压缩BCD码	2BYTE	0001-告警0002-待机0003-工作 0004-离线 0005-完成
    BYTE_JC_B17(2),//17	单体电池最高电压	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后三位
    BYTE_JC_B18(2),//18	单体电池最低电压	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后三位
    BYTE_JC_B26(2),//26	充电机输入电压	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后一位
    BYTE_JC_B29(2),//29	（当前）A相电压	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后一位
    BYTE_JC_B30(2),//30	（当前）B相电压	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后一位
    BYTE_JC_B31(2),//31	（当前）C相电压	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后一位
    BYTE_JC_B32(2),//32	（当前）A相电流	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后二位
    BYTE_JC_B33(2),//33	（当前）B相电流	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后二位
    BYTE_JC_B34(2),//34	（当前）C相电流	11：M_ME_NB_1	BIN码	2Byte	精确到小数点后二位

    //鉴权失败原因
//    5001("无效卡号"),//5001:无效卡号
//    5003("余额不足"),//5003:余额不足
//    5004("卡锁住"),//5004:卡锁住
//    5007("无效卡"),//5007:无效卡
//    5011("套餐余额不足"),//5011:套餐余额不足
//    5015("无效车状态"),//5015:无效车状态
//    5016("无效账户状态"),//5016:无效账户状态
//    5017("密码错误一次"),//5017:密码错误一次
//    5018("密码错误两次"),//5018:密码错误两次
//    5019("密码错误三次"),//5019:密码错误三次
//    5099("系统错误"),//5099:系统错误
    AUTH_FAIL_5001(5001),//5001:无效卡号
    AUTH_FAIL_5003(5003),//5003:余额不足
    AUTH_FAIL_5004(5004),//5004:卡锁住
    AUTH_FAIL_5007(5007),//5007:无效卡
    AUTH_FAIL_5011(5011),//5011:套餐余额不足
    AUTH_FAIL_5015(5015),//5015:无效车状态
    AUTH_FAIL_5016(5016),//5016:无效账户状态
    AUTH_FAIL_5017(5017),//5017:密码错误一次
    AUTH_FAIL_5018(5018),//5018:密码错误两次
    AUTH_FAIL_5019(5019),//5019:密码错误三次
    AUTH_FAIL_5099(5099),//5099:系统错误

    //充电方式   00 自动；01 按电量；02 按时间；03 按金额;
    CHARGE_AUTO("00"),
    CHARGE_EQ("01"),
    CHARGE_TIME("02"),
    CHARGE_MONEY("03"),

    //执行状态  压缩BCD码 	2BYTE
    EFFECTIVE_STATUS(1),//0001-有效
    INEFFECTIVE_STATUS(2),// 0002-无效

    //计量类型	压缩BCD码	2Byte
    METER_CHARGE(1), //0001-充电量
    METER_DISCHARGE(2),//0002-放电量

    //传送原因 COT = Cause： CP8[1…8]<0…255>
    COT_UNUSED(0),//<0>： 未用
    COT_CYCLE(1),//<1>： 周期、循环    per/cyc
    COT_BACKGROUND_SCAN(2),//<2>： 背景扫描     back
    COT_SPONTANEOUS(3),//<3>： 突发（自发）  spont
    COT_INIT(4),//<4>： 初始化          init
    COT_REQUEST(5),//<5>： 请求或被请求  req
    COT_ACTIVATION(6),//<6>： 激活
    COT_ACTIVATION_CONFIRM(7),//<7>： 激活确认
    COT_ACTIVATION_TERMINATION(10),//<10>： 激活终止
    COT_SUMMON(20),//<20>： 响应站总召      introgen
    COT_ENCRYPTION_REQUEST(21),//<21> : =请求或被请求（数据加密）
    COT_SUMMON_C(37),//<37>： 响应计数量召唤
    COT_UNKNOWN_TYPE(44),//<44>： 未知的类型标识
    COT_UNKNOWN_COT(45),//<45>： 未知的传送原因
    COT_UNKNOWN_STAT_ADDRESS(46),//<46>： 未知的应用服务数据单元公共地址
    COT_UNKNOWN_INFO_ADDRESS(47),//<47>： 未知的信息对象地址

    //记录类型号	下发记录类型  控制方向
    RECORD_BLACK_LIST(1),    //<1>	黑名单下发时下行数据
    RECORD_CHARGE_AUTH(2),//<2>	充电鉴权下行数据
    RECORD_CHARGE_CONFIRM(3),//<3>	充电记录确认数据
    RECORD_CHARGE_HOLDING(4),//<4>	充电扣款后下行数据
    RECORD_TRANSACTION(5),//<5>	交易取随机数下行数据
    RECORD_CHARGING_MODEL(6),//<6>	下发计费模型下行数据
    RECORD_AUTH_RANDOM(7),//<7>	双向认证中运营管理系统下发随机数下行数据
    RECORD_AUTH(8),//<8>	双向认证中运营管理系统下发认证数据下行数据
    RECORD_SECRET_UPGRADE_ORDER(9),//<9>	ESAM密钥更新命令下行数据
    RECORD_SECRET_KEY1(0),//<10> 	ESAM密钥更新中密钥文件1下发下行数据
    RECORD_SECRET_KEY2(11),//<11>	ESAM密钥更新中密钥文件2下发下行数据
    RECORD_REMOTE_START_CHARGE(12), //<12>	远程启动充电
    RECORD_REMOTE_END_CHARGE(13),//<13>	远程终止充电
    RECORD_REMOTE_KW(14),//<14>	远程功率控制
    RECORD_REMOTE_UPGRADE_START(15),//<15>	远程升级启动
    RECORD_UPLOAD_CONFIRM(16),//<16>	充电过程中上传确认数据
    RECORD_SET_PARAM(17),//<17>	充电设备数据上报参数设置
    RECORD_SECRET_UPDATE(18),//<18>	SM4加密密钥更新
    RECORD_CHARGE_EXECUTE_CONFIRM(19),//<19>	远程启动充电执行结果确认

    //监测方向
    M_RECORD_AUTH(1),//<1>	鉴权数据
    M_RECORD_UPLOAD_DATA(2),//<2>	充电记录上传数据
    M_RECORD_RANDOM(3),//<3>	交易取随机数
    M_RECORD_REQUEST_BILLING(4),//<4>	请求下发计费模型数据
    M_RECORD_BILLING(5),//<5>	下发计费模型结果数据
    M_RECORD_6(6),//<6>	双向认证中终端发起双向认证上行数据
    M_RECORD_7(7),//<7>	双向认证中终端上送认证数据上行数据
    M_RECORD_8(8),//<8>	ESAM加密密钥更新中基本数据
    M_RECORD_9(9),//<9>	ESAM加密密钥更新中密钥文件1接受成功数据
    M_RECORD_10(10),//<10>	ESAM加密密钥更新中密钥文件2更新成功数据
    M_RECORD_BLACK_LIST(11),//<11>	黑名单下发时上行数据
    M_RECORD_12(12),//<12>	双向认证终端认证运营管理系统上行数据
    M_RECORD_START_CHARGE(13),//<13> 	远程启动充电执行结果
    M_RECORD_END_CHARGE(14),//<14> 	远程终止充电执行结果
    M_RECORD_KW_CONTROLLER(15),//<15> 	远程功率控制结果
    M_RECORD_UPGRADE(16),//<16>	远程升级启动命令接收结果
    M_RECORD_CHARGE_PROCESS(17),//<17>	充电过程中上传数据
    M_RECORD_SET_PARAM(18),//<18>	充电设备数据上报参数设置结果
    M_RECORD_KEY(19),//<19>	SM4密钥更新结果
    M_HB(-1),//<-1>	自定义 心跳
    M_DEFAULT(0),//<-2> 自定义 默认

    //qoi 召唤限定词
    QOI_ZERO(0),  //未用
    QOI_TWENTY(20),  //站召唤(全局)
    QOI_TWENTY_ONE(21),  //第一组召唤
    QOI_THIRTY_SIX(36),  //第十六组召唤

    //qcc 计数量召唤限定词 QCC:=CP8[RQT, FRZ]
    //RQT=UI6[1....6]<0..63>
    QCC_RQT_ZERO(0), //没请求计数量(未采用)
    QCC_RQT_ONE(1),//请求计数量第1组
    QCC_RQT_TWO(2),//请求计数量第2组
    QCC_RQT_THREE(3),//请求计数量第3组
    QCC_RQT_FOUR(4),//请求计数量第4组
    QCC_RQT_FIVE(5),//总的请求计数量

    //FRZ=UI6[7,8]<0...3>
    QCC_FRZ_ZERO(0),//读(无冻结或复位)
    QCC_FRZ_ONE(1),//计数量冻结不带复位(被冻结的值为累加值)
    QCC_FRZ_TWO(2),//计数量冻结带复位(被冻结的值为增量信息)
    QCC_FRZ_THREE(3),//计数量复位

    //I S U 格式
    FORMAT_I("I"),
    FORMAT_S("S"),
    FORMAT_U("U"),

    START_TYPE_CARD(0),//刷卡
    START_TYPE_REMOTE(1),//远程
    START_TYPE_VIN(2),//VIN

    //设备类型号	设备类型	充电设备实时监测数据
    EQUIPMENT_COMMUNICATION(1),//<1>	交流充电桩	在附录A.1.1中定义
    EQUIPMENT_DIRECT(2),//<2>	非车载直流充电桩（整车）	在附录A.1.2中定义
    E_TYPE_COMMUNICATION("1"),//<1>	交流充电桩	在附录A.1.1中定义
    E_TYPE_DIRECT("2"),//<2>	非车载直流充电桩（整车）	在附录A.1.2中定义

    //直流
    //11：M_ME_NB_1对应的充电机的,遥信,遥测值
    INFO_MACHINE_11_0(0),//3     充电机输出电压	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后一位
    INFO_MACHINE_11_1(1),//4	    充电机输出电流	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后二位
    INFO_MACHINE_11_2(2),//26	    充电机输入电压	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后一位
    INFO_MACHINE_11_3(3),//5	    SOC	11：M_ME_NB_1	BIN码	2BYTE	整型
    INFO_MACHINE_11_4(4),//6	    电池组最低温度	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后一位
    INFO_MACHINE_11_5(5),//7	    电池组最高温度	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后一位
    INFO_MACHINE_11_6(6),//8	    充电机状态	11：M_ME_NB_1	压缩BCD码	2BYTE	0001-告警0002-待机0003-工作 0004-离线 0005-完成
    INFO_MACHINE_11_7(7),//17	    单体电池最高电压	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后三位
    INFO_MACHINE_11_8(8),//18	    单体电池最低电压	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后三位
    INFO_MACHINE_11_9(9),//29	    （当前）A相电压	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后一位
    INFO_MACHINE_11_10(10),//30	（当前）B相电压	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后一位
    INFO_MACHINE_11_11(11),//31	（当前）C相电压	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后一位
    INFO_MACHINE_11_12(12),//32	（当前）A相电流	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后二位
    INFO_MACHINE_11_13(13),//33	（当前）B相电流	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后二位
    INFO_MACHINE_11_14(14),//34	（当前）C相电流	11：M_ME_NB_1	BIN码	2Byte	精确到小数点后二位
    //1：M_SP_NA_1对应的充电机的,遥信,遥测值
    INFO_MACHINE_1_15(15),//2	    充电接口标识	1：M_SP_NA_1	BIN码	1BYTE	充电设备为一桩多充时用来标记接口号，一桩一充时此项为0。多个接口时顺序对每个接口进行编号
    INFO_MACHINE_1_0(0),//9	    BMS通信异常	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传；0正常，1异常
    INFO_MACHINE_1_1(1),//10	    直流母线输出过压告警	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传；0：不过压，1过压
    INFO_MACHINE_1_2(2),//11	    直流母线输出欠压告警	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传；0：不欠压，1欠压
    INFO_MACHINE_1_3(3),//27	    充电机输入过压告警	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传，1触发
    INFO_MACHINE_1_4(4),//28	    充电机输入欠压告警	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传，1触发
    INFO_MACHINE_1_5(5),//12	    蓄电池充电过流告警	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传；0：不过流，1过流
    INFO_MACHINE_1_6(6),//13	    蓄电池模块采样点过温告警	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传；0：不过温，1过温
    INFO_MACHINE_1_7(7),//16	    是否连接电池	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传
    INFO_MACHINE_1_8(8),//19	    充电机连接器故障	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传，1故障
    INFO_MACHINE_1_9(9),//20	    BMS终止	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传，1终止
    INFO_MACHINE_1_10(10),//21	    充电机内部温度故障	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传，1故障
    INFO_MACHINE_1_11(11),//22	    温度过高保护	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传，1过高
    INFO_MACHINE_1_12(12),//23	    短路保护	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传，1发生
    INFO_MACHINE_1_13(13),//24	    漏电保护	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传，1发生
    INFO_MACHINE_1_14(14),//25	    急停开关触发	1：M_SP_NA_1	BIN码	1BYTE	布尔型, 变化上传，1触发
    //132：M_MD_NA_1对应的充电机的,遥信,遥测值
    INFO_MACHINE_132_15(15),//1	    充电机编号	132：M_MD_NA_1	压缩BCD码	8BYTE	充电机编号
    INFO_MACHINE_132_256(256),//14	直流有功总电度	132：M_MD_NA_1	BIN码	4BYTE	精确到小数点后一位
    INFO_MACHINE_132_257(257),//15	交流有功总电度	132：M_MD_NA_1	BIN码	4BYTE	精确到小数点后一位


    //交流
    //11：M_ME_NB_1对应的充电桩的,遥信,遥测值
    INFO_PILE_11_0(0),//    工作状态	11：M_ME_NB_1	压缩BCD码	2Byte	0001-告警0002-待机0003-工作 0004-离线 0005-完成
    INFO_PILE_11_1(1),//    充电输出电压	11：M_ME_NB_1	BIN码	2Byte	精确到小数点后一位
    INFO_PILE_11_2(2),//    充电输出电流	11：M_ME_NB_1	BIN码	2Byte	精确到小数点后二位
    INFO_PILE_11_3(3),//    （当前）A相电压	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后一位
    INFO_PILE_11_4(4),//   （当前）B相电压	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后一位
    INFO_PILE_11_5(5),//	（当前）C相电压	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后一位
    INFO_PILE_11_6(6),//	（当前）A相电流	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后二位
    INFO_PILE_11_7(7),//	（当前）B相电流	11：M_ME_NB_1	BIN码	2BYTE	精确到小数点后二位
    INFO_PILE_11_8(8),//   （当前）C相电流	11：M_ME_NB_1	BIN码	2Byte	精确到小数点后二位
    //1：M_SP_NA_1对应的充电桩的,遥信,遥测值
    INFO_PILE_1_0(0),//    连接确认开关状态	1：M_SP_NA_1	BIN码	1Byte	布尔型, 变化上传;0关，1开
    INFO_PILE_1_1(1),//    交流输入过压告警	1：M_SP_NA_1	BIN码	1Byte	布尔型, 变化上传；0不过压，1过压
    INFO_PILE_1_2(2),//    交流输入欠压告警	1：M_SP_NA_1	BIN码	1Byte	布尔型, 变化上传；0不欠压，1欠压
    INFO_PILE_1_3(3),//    充电电流过负荷告警	1：M_SP_NA_1	BIN码	1Byte	布尔型, 变化上传；0不过负荷，1过负荷
    INFO_PILE_1_4(4),//    输出继电器状态	1：M_SP_NA_1	BIN码	1Byte	布尔型, 变化上传;0关，1开
    INFO_PILE_1_5(5),//    温度过高保护	1：M_SP_NA_1	BIN码	1Byte	布尔型, 变化上传，1过高
    INFO_PILE_1_6(6),//    短路保护	1：M_SP_NA_1	BIN码	1Byte	布尔型, 变化上传，1发生
    INFO_PILE_1_7(7),//    漏电保护	1：M_SP_NA_1	BIN码	1Byte	布尔型, 变化上传，1发生
    INFO_PILE_1_8(8),//    急停开关触发	1：M_SP_NA_1	BIN码	1Byte	布尔型, 变化上传，1触发
    INFO_PILE_1_15(15),//    充电接口标识	1：M_SP_NA_1	BIN码	1Byte	充电设备为一桩多充时用来标记接口号，一桩一充时此项为0。多个接口时顺序对每个接口进行编号
    //132：M_MD_NA_1对应的充电桩的,遥信,遥测值
    INFO_PILE_132_15(15),//    充电设备编号	132：M_MD_NA_1	压缩BCD码	8Byte	充电设备编号
    INFO_PILE_132_256(256);//    有功总电度	132：M_MD_NA_1	BIN码	4Byte	精确到小数点后一位


    private String s;
    private Integer i;

    TypeIdentif(String val) {
        this.s = val;
    }

    TypeIdentif(Integer val) {
        this.i = val;
    }

    public String getStr(){
        return s;
    }
    public Integer getInt(){
        return i;
    }
    public Integer getByteLength(){
        return i*2;
    }

    //直流
    //获取充电机参数名11
    public String getInfoMachine11Str(){
        String str;
        switch (i){
            case 0:
                str = "充电机输出电压";
                break;
            case 1:
                str = "充电机输出电流";
                break;
            case 2:
                str = "充电机输入电压";
                break;
            case 3:
                str = "SOC";
                break;
            case 4:
                str = "电池组最低温度";
                break;
            case 5:
                str = "电池组最高温度";
                break;
            case 6:
                str = "充电机状态";
                break;
            case 7:
                str = "单体电池最高电压";
                break;
            case 8:
                str = "单体电池最低电压";
                break;
            case 9:
                str = "（当前）A相电压";
                break;
            case 10:
                str = "（当前）B相电压";
                break;
            case 11:
                str = "（当前）C相电压";
                break;
            case 12:
                str = "（当前）A相电流";
                break;
            case 13:
                str = "（当前）B相电流";
                break;
            case 14:
                str = "（当前）C相电流";
                break;
            case 15:
                str = "（当前）C相电流";
                break;
            default:
                str = "充电机输出电压";
                break;
        }
        return str;
    }
    //获取充电机参数名1
    public String getInfoMachine1Str(){
        String str ;
        switch (i){
            case 0:
                str = "BMS通信异常";
                break;
            case 1:
                str = "直流母线输出过压告警";
                break;
            case 2:
                str = "直流母线输出欠压告警";
                break;
            case 3:
                str = "充电机输入过压告警";
                break;
            case 4:
                str = "充电机输入欠压告警";
                break;
            case 5:
                str = "蓄电池充电过流告警";
                break;
            case 6:
                str = "蓄电池模块采样点过温告警";
                break;
            case 7:
                str = "是否连接电池";
                break;
            case 8:
                str = "充电机连接器故障";
                break;
            case 9:
                str = "BMS终止";
                break;
            case 10:
                str = "充电机内部温度故障";
                break;
            case 11:
                str = "温度过高保护";
                break;
            case 12:
                str = "短路保护";
                break;
            case 13:
                str = "漏电保护";
                break;
            case 14:
                str = "急停开关触发";
                break;
            case 15:
                str = "充电接口标识";
                break;
            default:
                str = "BMS通信异常";
                break;
        }
        return str;
    }
    //获取充电机参数名132
    public String getInfoMachine132Str(){
        String str;
        switch (i){
            case 15:
                str = "充电机编号";
                break;
            case 256://"直流有功总电度";
                str = "powerTotal";
                break;
            case 257://"交流有功总电度";
                str = "powerTotal2";
                break;
            default:
                str = "充电机编号";
                break;
        }
        return str;
    }

    //交流
    //获取充电机参数名11
    public String getInfoPile11Str(){
        String str;
        switch (i){
            case 0:
                str = "工作状态";
                break;
            case 1:
                str = "充电输出电压";
                break;
            case 2:
                str = "充电输出电流";
                break;
            case 3:
                str = "（当前）A相电压";
                break;
            case 4:
                str = "（当前）B相电压";
                break;
            case 5:
                str = "（当前）C相电压";
                break;
            case 6:
                str = "（当前）A相电流";
                break;
            case 7:
                str = "（当前）B相电流";
                break;
            case 8:
                str = "（当前）C相电流";
                break;
            default:
                str = "充电机输出电压";
                break;
        }
        return str;
    }

    //获取充电机参数名1
    public String getInfoPile1Str(){
        String str ;
        switch (i){
            case 0:
                str = "连接确认开关状态";
                break;
            case 1:
                str = "交流输入过压告警";
                break;
            case 2:
                str = "交流输入欠压告警";
                break;
            case 3:
                str = "充电电流过负荷告警";
                break;
            case 4:
                str = "输出继电器状态";
                break;
            case 5:
                str = "温度过高保护";
                break;
            case 6:
                str = "短路保护";
                break;
            case 7:
                str = "漏电保护";
                break;
            case 8:
                str = "急停开关触发";
                break;
            default:
                str = "连接确认开关状态";
                break;
        }
        return str;
    }


    //获取充电机参数名132
    public String getInfoPile132Str(){
        String str;
        switch (i){
            case 15:
                str = "充电机编号";
                break;
            case 256://"有功总电度";
                str = "powerTotal";
                break;
            default:
                str = "充电机编号";
                break;
        }
        return str;
    }

}
